The classification of data packet flows is an important aspect of data packet communications. When a new flow is identified, well-known classification procedures attach a classification indication to the data packets of the particular flow based upon the flow's characteristics. Each flow classification has a corresponding level of Quality of Service (QoS) and allocation of network resources. Thus, once a particular classification has been selected for a data packet flow, the appropriate level of QoS and network resources is automatically selected for the particular flow.
The use of the appropriate level of QoS for each data packet flow is important in normal data packet communications in order to increase efficiency, but is especially important when considering wireless applications of packet data communications. FIG. 1 illustrates an example of a wireless data packet network in which the proper classification of data packet flows is crucial to the overall efficiency of the network. In this figure, a computing apparatus 10 is coupled to a mobile station 12 that further communicates, via wireless channels, with a basestation 14 within a wireless network infrastructure. The basestation 14 is further coupled, via the Internet 16, to a data server 18. In the network of FIG. 1, the computing apparatus 10 and the data server 18 can communicate with the sending of data packet flows in either direction, these flows of data packets traversing the mobile station 12, the basestation 14 within the wireless infrastructure and the Internet 16. Due to significant limitations on the quantity and quality of communications being transmitted via the wireless channels between the mobile station 12 and the basestation 14 of the wireless infrastructure, the selection of the appropriate QoS for each data packet flow is highly important, thus leading to the significance of the flow classification.
There are a number of different techniques that have been attempted to classify data packet flows appropriately. The current most common method of classification within industry is referred to as static flow classification, static flow classification being the use of pattern matching with one or more of Layer 3 (L3) through Layer 7 (L7) headers and/or the payload information to decide upon a flow classification for the entire flow, the pattern matching normally being performed only on the first packet of the flow. The key advantages of using static flow classification, as currently designed, is the general simplicity of the classification decision process, as well as the satisfactory speed and normal reliability of the decision making procedure.
Unfortunately, there are situations where the reliability of the static classification procedure is in question. Some of these situations include: during the use of Layer 7 (L7) protocols in non-default applications; during the use of non-standard Layer 4 (L4) port numbers; when the class of the data packet flow is dynamically changing; and where the different headers of the packet are encrypted. In fact, when the packets of the flow are encrypted, the static flow classification technique is not useable and another technique for classification must be used.
Another technique for classification of flows that can be utilized is dynamic flow classification as is disclosed within U.S. Pat. No. 6,023,456 entitled “Dynamic Traffic Conditioning” by Chapman et al, assigned to the assignee of the present invention and herein incorporated by reference. In dynamic flow classification, the dynamic flow behaviour of the flow is monitored for a period of time and, based on this behaviour, the class of the flow is changed. In this case, the dynamic flow behaviour can include such dynamic characteristics as interval time between packets, frequency of packets and size of packets being sent within the particular flow. Thus, dynamic flow classification does not depend on the accuracy of the static patterns in packet headers, and it can adjust its classification decision in relation to the time variations of the flow.
Generally, using dynamic flow classification can result in a more accurate classification for a flow, as it overcomes most of the limitations described above for the static flow classification technique. In particular, the dynamic flow classification technique, as disclosed within U.S. Pat. No. 6,023,456, can successfully be utilized for flows with encrypted packets; flows with non-standard layer headers and/or ports; and flows that change in behaviour during transmission.
Unfortunately, dynamic flow classification is unavailable for the earlier packets of a flow and instead defaults to a predetermined initial classification. After this initial selection of a default classification, the classification of the flow is modified until the assigned classification matches the behaviour of the flow being observed. This convergence between the assigned classification and the observed behaviour can take a significant number of packets and/or period of time and, during this transitory period, the temporary classifications will likely be inaccurate. This initial inaccuracy in the selection of a flow classification can cause significant inefficiencies and make the use of the dynamic flow classification technique unable to work for short flows.